#ifndef _TIME_H
#define _TIME_H

#ifndef _TIME_T
#define _TIME_T
typedef long time_t;    // 从GMT 1970年1月1日开始的以秒计数的时间（日历时间）
#endif

#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t;
#endif

#define CLOCKS_PER_SEC 100  // 系统时钟滴答评率 100HZ

typedef long clock_t;   // 从进程开始系统经过的时钟滴答数

struct tm {
	int tm_sec;     // s
	int tm_min;     // m
	int tm_hour;    // h
	int tm_mday;    // d
	int tm_mon;     // M
	int tm_year;    // y
	int tm_wday;    // week
	int tm_yday;    // day
	int tm_isdst;   // 夏令时标志
};

clock_t clock(void);    // 确定处理使用时间 返回程序所用处理器时间（滴答数）的近似值
time_t time(time_t * tp);   // 取时间 返回从1970.1.1:0:0:0开始的秒数（称为日历时间）
double difftime(time_t time2, time_t time1);    // 计算时间差 返回time2与time1秒数差值
time_t mktime(struct tm * tp);  // 将tm结构表示的时间转换成日历时间

char * asctime(const struct tm * tp);   // 将时间转换成一个字符串 返回指向串指针
char * ctime(const time_t * tp);    // 将日历时间转换成一个字符串形式
struct tm * gmtime(const time_t *tp);   // 将日历时间转成tm结构表示的UTC时间
struct tm *localtime(const time_t * tp);    // 将日历时间转换成指定时间区（timezone）的时间
size_t strftime(char * s, size_t smax, const char * fmt, const struct tm * tp); // 将tm结构表示的时间利用格式字符串fmt转换成最大长度为smax的字符串并将结果存储在s中
void tzset(void);   // 初始化时间转换信息 使用环境变量TZ 对zname变量进行初始化 在与时间区先关的时间转换函数中将自动调用该函数

#endif
